Generally, a server provides communication services to applications that are supported by the server. As an example, the server may provide one service for storage, another service for networking and a third service for inter-process communication. An Operating System (OS) present in the server, owns resources that are required by the applications and may provide the resources to the applications on requirement basis. Since, the OS manages multiple processes of many different applications within one controller, communicating with other processes of applications active in other controllers, may result in poor performance. Therefore, High Performance Computing (HPC) switches are introduced to improve performance in high performance computing and networking infrastructure. The HPC switches are mainly used in high end enterprise storage systems.
Though, the HPC Switches are introduced in high end enterprise storage systems to provide high speed message transmission, there may occur multiple limitations that generally arise when syncing together multiple enterprise storage systems, especially when Central Processing Unit (CPU) utilization is 100% for Storage Area Network (SAN). Currently, “Infiniband (IB)” is a widely used HPC switch, that provides a high bandwidth and low latency while performing interprocess communications. However, at any given point of time, the IB can establish connection between only two controllers belonging to same cluster and same Redundant Array of Independent Disks (RAID), which means that target controllers are always fixed for any given IB connection in high end storage systems.
When the target controllers are fixed, message transmission may be highly affected in scenarios such as, when target controllers are busy or when the connection between the target controllers is not strong enough or when one of the target controller is down. In most of the cases, the target controllers may be busy in Input/output Operations Per Second (TOPS) transactions that shows a negative impact on communication by other controller. In some scenarios, Inter Process Communication (IPC) message delivery may fail when the target controller is busy with other transactions, since the target controller may not be able to receive messages within expected time. Similarly, initiation of the IPC message delivery may be delayed, when the controller which is supposed to initiate the IPC message delivery is busy with other transactions. In such scenarios, a process that wants to initiate the IPC message delivery may have to wait until the controller is free to carry out the IPC message delivery, thereby, causing delay in communication. In some scenarios, such delay in communication may kill other child processes associated with the process. Further, in scenarios where adequate network strength is not present, the message packets may arrive late which causes a delay in the IPC message delivery. In some scenarios, lack of remote access to memory, may result in timeout, which may demand restarting or rebooting the target controller. Typically, reboot of the target controller may affect the IPC message delivery and also the IOPS transactions.
Therefore, currently existing IB switch experiences a major drop in performance in scenarios where connection between the controllers is not strong, when target controllers are busy, when initiator controllers are busy, when there is a memory shrinkage, when there is any issue with host channel adapter connected to the IB switch and the like.
The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the disclosure and should not be taken as an acknowledgement or any form of suggestion that this information forms prior art already known to a person skilled in the art.